#include "HelloWorld.h"
#include <iostream>
#include <string>
#include <vector>
#include <random>
#include <complex>
#include<ctime>
using namespace std;
typedef HelloWorld hw;

hw::HelloWorld() {
	privateData = 2;
}

int hw::hw(int parameter) {
	privateData = parameter*3; // 示例操作
	return privateData;
}
int hw::getHelloWorld()
{	
	return privateData;
}
//随机一个整数范围输出
int randomCount(int x,int y)
{
	// 创建随机数生成器
	std::random_device rd;  // 用于获取随机数种子
	std::mt19937 gen(rd()); // 使用种子初始化Mersenne Twister生成器

	// 创建分布对象
	std::uniform_int_distribution<> dis(x, y);

	// 生成随机数并返回
	return dis(gen);
}
//随机数组的顺序,返回数组.
vector<string> shuffleArray(vector<string>& arr) {
	// 创建随机数生成器
	random_device rd;  // 用于获取随机数种子
	mt19937 g(rd());   // 使用种子初始化Mersenne Twister生成器
	// 打乱数组
	shuffle(arr.begin(), arr.end(), g);
	// 返回打乱后的数组
	return arr;
}

//返回当前日期
int week()
{
	// 获取当前时间
	time_t now = time(nullptr);
    
	// 使用 localtime_s 函数获取本地时间
	tm localTime;
	if (localtime_s(&localTime, &now) == 0) {
		// 转换成功，localTime 结构体中包含了本地时间信息
		// tm_wday 字段包含星期几的信息，星期天是0，星期一是1，以此类推
		int weekday = localTime.tm_wday;
		return weekday;// 转换失败
	} else {
		return -1;// 转换失败
	}
	
}


 void randomSports()
{

	vector<string> str1 = {"开合跳","波比跳","平板支撑(x3s)","臀桥",};
	vector<string> str2 = {"深蹲","俯卧撑","引体(除5)","弓步蹲",};
	
	str1 = shuffleArray(str1);
	str2 = shuffleArray(str2);

	//强度1~10
	int p = randomCount(1,20);
	int p2 = randomCount(1,20);
	
	const char* days[] = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
	cout << "今天是 :" <<days[week()]<<'\n';
	cout << "运动 :" <<str1[1]<< " ,个数:"<<p<<'\n';
	cout << "运动 :" <<str1[2] << " ,个数:"<<p<<'\n';
	cout << "运动 :" <<str2[1] << " ,个数:"<<p2<<'\n';
	cout << "运动 :" <<str2[2] << " ,个数:"<<p2<<'\n';
}

/*
int main() {
	hw h;
	//h.getHelloWorld();
	h.randomSports();
}
*/
